<?php
/**
 * 企业服务 控制器
 */
class EinfoservicesAction extends Action {
	/**
	 * 获取所有的服务信息 并分页显示
	 */
	public function AdminIndex(){
		EasyACL('Einfoservices','AdminIndex',$_SESSION);
		$Info = D('Einfoservices');
		//计算总计多少条记录
		$count = $Info->count(NULL,'einfos_id');
		//每页显示记录数
		$listRows = 15;
		//需要查询的列
		$fields = 'einfos_id,id,enter_id,title,einfos_top,einfos_link,einfos_audit,created';
		import('ORG.Util.Page');
		$p = new Page($count,$listRows);
		$list = $Info->xfindall(NULL,$fields,'einfos_top desc,einfos_sort desc,einfos_id desc',$p->firstRow.','.$p->listRows);
		$page = $p->show();
		//设置到模板文件
		$this->assign('Services',$list);
		$this->assign('page',$page);
		$this->display();
	}
	/**
	 * 创建新的企业服务信息
	 *
	 */
	public function AdminCreate(){
		EasyACL('Einfoservices','AdminCreate',$_SESSION);
		if ($this->isPost()){
			//输入
			$Input = Input::getInstance();
			$Input->filter('addslashes');
			//进行数据库判断
			$Info = D('Einfoservices');
			$Info->id = $Input->post('id');
			$Info->enter_id = $Input->post('enter_id');
			$Info->einfos_top = $Input->post('einfos_top');
			$Info->einfos_sort = $Input->post('einfos_sort');
			$Info->einfos_link = $Input->post('einfos_link');
			//如果选择启用外部链接，则进行赋值操作，否则等于NULL
			if ($Input->post('einfos_link') == 'Y'){
				$Input->einfos_linkaddress = $Input->post('einfos_linkaddress');
			} else {
				$Input->einfos_linkaddress = NULL;
			}
			$Info->einfos_audit = $Input->post('einfos_audit');
			$Info->title = $Input->post('title');
			$Info->content = $Input->post('content');
			$time = time();
			$Info->created = $time;
			$Info->updated = $time;
			$result = $Info->add();
			if (!$result) {
				halt($Info->getError());
			}
			//跳转
			$this->redirect('AdminIndex','Einfoservices');
		}
		//设置查询条件
		$conditions = array();
		//只进行查询根分类,其它非根分类将进行关联查询
		$conditions['state'] = 0;
		
		//获取所有的企业信息服务分类
		$Einfoc = D('Einfoc');
		$Class = $Einfoc->field('id,cid,name')->order('id asc')->xfindall($conditions);
		//设置到模板
		$this->assign('Class',$Class);
		$this->display();
	}
	/**
	 * 修改服务信息
	 *
	 */
	public function AdminUpdate(){
		EasyACL('Einfoservices','AdminCreate',$_SESSION);
		$Input = Input::getInstance();
		$Input->filter('addslashes');
		//POST提交
		if ($this->isPost()){
			//设置查询条件
			import('ORG.Util.HashMap');
			$map = new HashMap();
			$map->put('einfos_id',array('EQ',$Input->post('einfos_id')));
			$Info = D('Einfoservices');
			$Info->where($map)->find();
			$Info->id = $Input->post('id');
			$Info->enter_id = $Input->post('enter_id');
			$Info->einfos_top = $Input->post('einfos_top');
			$Info->einfos_sort = $Input->post('einfos_sort');
			$Info->einfos_link = $Input->post('einfos_link');
			//判断
			if ($Input->post('einfos_link') != NULL) {
				$Input->einfos_linkaddress = $Input->post('einfos_linkaddress');
			} else {
				$Input->einfos_linkaddress = NULL;
			}
			$Info->einfos_audit = $Input->post('einfos_audit');
			$Info->title = $Input->post('title');
			$Info->content = $Input->post('content');
			$Info->updated = time();
			$result = $Info->save();
			if (!$result) {
				halt('尝试修改信息失败!');
				//$this->error($Info->getError());
			}
			$this->redirect('AdminIndex','Einfoservices');
		}
		//设置查询条件
		$conditions = array();
		//只进行查询根分类,其它非根分类将进行关联查询
		$conditions['state'] = 0;
		
		//获取所有的企业信息服务分类
		$Einfoc = D('Einfoc');
		$Class = $Einfoc->field('id,cid,name')->order('id asc')->xfindall($conditions);
		
		//获取要修改的内容
		import('ORG.Util.HashMap');
		$map = new HashMap();
		$map->put('einfos_id',array('EQ',$Input->get('einfos_id')));
		$Info = D('Einfoservices');
		$Einfoservices = $Info->where($map)->find();
		
		//设置到模板
		$this->assign('Einfo',$Einfoservices);
		$this->assign('Class',$Class);
		$this->display();
	}
	/**
	 * 直接审核 信息
	 */
	public function AdminUpdateAudit(){
		EasyACL('Einfoservices','AdminUpdateAudit',$_SESSION);
		$Input = Input::getInstance();
		$Input->filter('addslashes');
		//设置查询条件
		import('ORG.Util.HashMap');
		$conditions = new HashMap();
		$conditions->put('einfos_id',array('EQ',$Input->get('einfos_id')));
		
		$Info = D('Einfoservices');
		$Info->where($conditions)->find();
		$Info->einfos_audit = 'Y';
		$result = $Info->save();
		//如果失败
		if (!$result) {
			halt('尝试修改审核状态');
		}
		//跳转到
		return $this->redirect('AdminIndex','Einfoservices');
	}
	/**
	 * 将信息设置置顶
	 */
	public function AdminSetTop(){
		EasyACL('Einfoservices','AdminSetTop',$_SESSION);
		$Input = Input::getInstance();
		$Input->filter('addslashes');
		
		//设置查询条件
		import('ORG.Util.HashMap');
		$conditions = new HashMap();
		$conditions->put('einfos_id',array('EQ',$Input->get('einfos_id')));
		
		$Info = D('Einfoservices');
		$Info->where($conditions)->find();
		if ($Input->get('einfos_top') == 'Y' or $Input->get('einfos_top') == 'N') {
			$Info->einfos_top = ($Input->get('einfos_top') == 'Y') ? 'N' : 'Y';
            //如果用户取消置顶，系统同时将einfos_sort固顶排序同时改为0
            if($Input->get('einfos_top') == 'Y'){
                $Info->einfos_sort = 0;
            }
			$result = $Info->save();
			if (!$result) {
				halt('尝试修改置顶状态失败!');
			}
			return $this->redirect('AdminIndex','Einfoservices');
		} else {
			halt('传入值不正确!');
		}
	}
	/**
	 * 获取某一条信息的内容
	 */
	public function AdminDisplay(){
		EasyACL('Einfoservices','AdminDisplay',$_SESSION);
		//设置查询条件
		$Input = Input::getInstance();
		$Input->filter('addslashes');
		
		import('ORG.Util.HashMap');
		$conditions = new HashMap();
		$conditions->put('einfos_id',array('EQ',$Input->get('einfos_id')));
		
		$Info = D('Einfoservices');
		$EinfoServices = $Info->where($conditions)->xfind();

		//设置到模板
		$this->assign('EinfoServices',$EinfoServices);
		$this->display();
	}
	/**
	 * 单条删除服务信息
	 *
	 */
	public function AdminDel($einfos_id){
        $Info = D('Einfoservices');
        $result = $Info->deleteById($einfos_id);
        if(!$result){
            return FALSE;
        }
        return TRUE;
	}
    /**
     * 多条删除
     * */
    public function AdminDels()
    {
        EasyACL('Einfoservices','AdminDels',$_SESSION);
        $Input = Input::getInstance();
        $Input->filter('addslashes');
        //POST
        if($this->isPost()) {
            $einfos_ids = $_POST['einfos_id'];
            $Error = '';
            foreach($einfos_ids as $id){
                $result = $this->AdminDel($id);
                if(!$result){
                    $Error .= '尝试删除编号为'.$id.'信息失败';
                }
            }
            if(!empty($Error)){
                halt($Error);
            }
            return $this->redirect('AdminIndex','Einfoservices');
        }
        //GET
        if($this->isGet()){
            if(!$this->AdminDel($Input->get('einfos_id'))) {
                halt('尝试删除信息失败');
            }
            return $this->redirect('AdminIndex','Einfoservices');
        }
    }
    /**
     * 条件查询
     * 根据条件进行模糊查询
     * */
    public function AdminSearch()
    {
        EasyACL('Einfoservices','AdminSearch',$_SESSION);
        //POST
        if ($this->isPost())
        {
            $Input = Input::getInstance();
            $Input->filter('addslashes');

            //判断要搜索的内容是否为空
            if ($Input->post('title') == '') {
                halt('请正确的输入要查询的标题关键词!');
            }

            import('ORG.Util.HashMap');
            $conditions = new HashMap();
            $conditions->put('title',
                             array('like','%'.$Input->post('title').'%')
                             );
            //判断是否选择只在固顶中进行查询
            if ($Input->post('select') != 'NULL')
                $conditions->put('einfos_top',array('EQ','Y'));
            
            //
            $Info = D('Einfoservices');
	    	//计算总计多少条记录
	    	$count = $Info->count($conditions,'einfos_id');
    		//每页显示记录数
    		$listRows = 15;
    		//需要查询的列
    		$fields = 'einfos_id,id,enter_id,title,einfos_top,einfos_link,einfos_audit,created';
    		import('ORG.Util.Page');
    		$p = new Page($count,$listRows);
    		$list = $Info->xfindall($conditions,$fields,'einfos_top desc,einfos_sort desc,einfos_id desc',$p->firstRow.','.$p->listRows);
	    	$page = $p->show();

            
            //设置到模板
            $this->assign('Services',$list);
            return $this->display('AdminIndex');
        }
        //获取模板
        $this->display();
    }
}
